More-permanent fix for build with Android NDK r10b
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 4 Jun 2024 18:54:24 +0000 (11:54 -0700)
committerPo Lu <luangruo@yahoo.com>
Wed, 5 Jun 2024 01:26:53 +0000 (09:26 +0800)
* configure.ac (gl_cv_header_working_endian_h):
Remove temporary workaround for Android.
* lib/endian.in.h: Copy latest version from Gnulib.

configure.ac
lib/endian.in.h

index 369c9005c61c10ceb4d89eb3dfc3bbaf4dd153bc..e3213f4ac7965a12012d791b9eb2b4ffb43a1bfd 100644 (file)
@@ -49,12 +49,6 @@ if test "$XCONFIGURE" = "android"; then
     CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=32"
     enable_largefile=no
     enable_year2038=no])
-  # Further, endian.h is not guaranteed to define every function that
-  # Gnulib seeks to replace, but Gnulib tests are not prepared for
-  # such versions of endian.h as only define a subset of the functions
-  # whose presence it tests.  Force such tests to succeed as a stopgap
-  # measure.
-  gl_cv_header_working_endian_h=yes
 fi
 
 dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
index bd65ae8aaba27eb07b2fac5d5cae86e030e8c717..156fe49fbdaa1ba558d4aac75c8a118e23a48f48 100644 (file)
@@ -69,8 +69,9 @@ _GL_INLINE_HEADER_BEGIN
 # define BYTE_ORDER LITTLE_ENDIAN
 #endif
 
-/* Make sure function-like macros get undefined.  */
 #if @HAVE_ENDIAN_H@
+
+/* Make sure we don't have any system definitions.  */
 # undef be16toh
 # undef be32toh
 # undef be64toh
@@ -83,6 +84,21 @@ _GL_INLINE_HEADER_BEGIN
 # undef htole16
 # undef htole32
 # undef htole64
+
+/* Define our own.  */
+# define be16toh rpl_endian_be16toh
+# define be32toh rpl_endian_be32toh
+# define be64toh rpl_endian_be64toh
+# define htobe16 rpl_endian_htobe16
+# define htobe32 rpl_endian_htobe32
+# define htobe64 rpl_endian_htobe64
+# define le16toh rpl_endian_le16toh
+# define le32toh rpl_endian_le32toh
+# define le64toh rpl_endian_le64toh
+# define htole16 rpl_endian_htole16
+# define htole32 rpl_endian_htole32
+# define htole64 rpl_endian_htole64
+
 #endif
 
 #ifdef __cplusplus